Data replication involves replicating data located at a source to a destination. This may be performed for the purpose of disaster recovery, where data replicated from the source to the destination may be later recovered at the destination when the source undergoes failure. In a networked environment the source includes several nodes (e.g., servers, data centers, etc.) that are in communication amongst each other and the destination includes several nodes (e.g., servers, data centers, etc.) that are also in communication amongst each other. Conventionally, a subset of nodes at the source is selected as dedicated nodes for performing data replication for all of the nodes at the source. This subset of nodes typically communicates with a corresponding dedicated subset of nodes at the destination on a one-to-one basis in order to facilitate data replication. For example, if two nodes at the source are selected as dedicated nodes for data replication, then these two nodes will communicate with a corresponding dedicated two nodes at the destination in order to facilitate data replication.
Because only a dedicated subset of nodes at the source are utilized for performing data replication, the workload imposed on that subset of nodes may lead to inefficiencies in resource usage. When the number of nodes located at the source grows, the dedicated subset of nodes at the source may incur increased strain in providing data replication for all the nodes at the source. Additionally, because the dedicated subset of nodes at the source communicate with a corresponding dedicated subset of nodes at the destination on a one-to-one basis, the dedicated subset of nodes at the destination may be underutilized or over utilized at any given time depending on the amount of data being replicated.